iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0

CMake 是什麼? 可以吃嗎?

CMake 是一個支援 cross compile 的 build tool, 讓我們 (developer) 能夠產生適用不同 compiler, 作業系統和環境的文件

如果沒有 CMake, 想在不同平台上 build code 時, 我們需要針對每個不同的平台寫不同的 script, 相當麻煩

CMake 可以幫我們自動產生這些 script, 比如 Makefile, Ninja, Visual Studio 等等

總之, CMake 省下了因為需要 build code 給不同平台使用所需要花費的人力與時間成本, 讓 developer 能夠專注在業務功能的開發, 也能讓專案架構得到改善

誰適合看這系列

本系列為初階內容, 適合對 CMake 不熟悉, 但是想了解如何使用的人
如果有 C++ 開發經驗更好, 沒有也沒關係, 此系列會用最簡單的範例程式做介紹, 盡量將重點放在 CMake
甚至對作業系統, 計算機組織不熟的人也都可以閱讀

由於上述內容只會簡單帶過, 如果對這些有興趣的話, 個人推薦以下幾本書

C++

  • Effective C++
  • More Effective C++

作業系統

  • Operating System Concepts (恐龍本)

計算機組織

  • Computer Organization and Design (楓葉本)

此系列有什麼

你可以從本系列了解 CMake 是什麼, 基本語法, 建議的用法, 如何 cross compile

除了 CMake 以外, 我會在講到相關概念時簡單解釋, 比如

  • 一般說的 build code 到底是什麼?
  • Generator 是什麼?
  • Toolchain 又是什麼?
  • 為什麼需要 cross compile?

另外, 專案的架構也很重要
好的專案架構不只可以讓開發時 CMake 寫起來更愉快
對後續寫測試, 安裝, 打包, 甚至 cross compile 也有很大的影響

當然, 本系列不會讓你做出一個厲害的 Side Project, 也涵蓋不了所有開發可能會遇到的情況

初期會用簡單的程式做介紹, 讓大家專注於 CMake 的語法和其特性, 並介紹相關的概念

並會在最後幾天帶大家看看 Open Source 專案 (PyTorch) 是如何寫 CMake 的

希望大家看完後, 不只能夠自己開發跨平台程式, 也能看懂 CMake 的專案, 自己 debug 自己 compile!

此系列沒有什麼

此系列 不會

  • 寫出很厲害的 Side Project
  • 介紹或使用 cmake-gui
  • Build Apple 系列程式 (ex. iOS, MacOS, watchOS, tvOS)
  • 使用 IDE 如 CLion, Visual Studio, Xcode, VSCode 等等

30 天主題

接下來一個月會和大家介紹以下內容

預告

接下來就來設置環境, 然後用一分鐘來 build 出我們的第一個專案吧!


下一篇
[Day 2] 環境設置與 Hello World
系列文
30 天 CMake 跨平台之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言